<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>

    <script src="./node_modules/_vue@2.5.22@vue/dist/vue.js"></script>
</head>

<body>
    <div id="app">
        <input type="button" value="按一下" @click='lang'>
        <input type="button" value="扭一下" @click='stop'>
        <input type="button" value="重置" @click="reset">
        <h3>{{name}}</h3>

    </div>
    <script>
        var vm = new Vue({
            el: '#app',
            data: {
                name: '雷憨憨真可爱！！',
                interval: '',
            },
            methods: {
                lang() {
                    if (this.interval) {
                        clearInterval(this.interval)
                    }
                    
                    this.interval = setInterval(() => {
                        var str = this.name.substring(0, 1)
                        // 获取到 后面的所有字符
                        var end = this.name.substring(1)
                        // 重新拼接得到新的字符串，并赋值给 this.msg
                        this.name = end + str
                    }, 400)
                    // 注意： VM实例，会监听自己身上 data 中所有数据的改变，只要数据一发生变化，
                    //就会自动把 最新的数据，从data 上同步到页面中去；
                    //【好处：程序员只需要关心数据，不需要考虑如何重新渲染DOM页面】
                },
                stop() {
                    clearInterval(this.interval)
                },
                reset(){
                    this.stop()
                    this.name = '雷憨憨真可爱！！'
                }
            }
        })
    </script>
</body>

</html>